/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.intec.matsab.form;

import edu.intec.matsab.dao.AsignaturaDAO;
import edu.intec.matsab.dao.EstudianteDAO;
import edu.intec.matsab.persistence.Asignatura;
import edu.intec.matsab.persistence.Estado;
import java.util.Iterator;
import java.util.List;
import javax.el.ELContext;
import javax.el.ValueExpression;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

/**
 *
 * @author matilde
 */
public class ManejoAsignaturaBean {

    private Asignatura asignatura;
    private boolean success;
    private boolean eliminada;
    private String idAsignatura;
    private List<SelectItem> asignaturaItems;

    // private List<SelectItem> estadosItems;
    public ManejoAsignaturaBean() {
        asignatura = new Asignatura();
    }

    public Asignatura getAsignatura() {
        return asignatura;
    }

    public void setAsignatura(Asignatura asignatura) {
        this.asignatura = asignatura;
    }

    private void createSelectItems() {
        Iterator itr = AsignaturaDAO.getAllAsignaturas().iterator();

        while (itr.hasNext()) {
            Asignatura asig = (Asignatura) itr.next();
            asignaturaItems.add(new SelectItem(asig.getIdAsignatura(), asig.getDescripcion()));
        }
    }


/* El metodo insertar, envia un objeto del tipo Asignatura a la clase AsignaturaDAO
 * para poder  insertar una asignatura a la base de datos
 *
 * @see  EstudiateDAO
*/    
    public String insertar() {
        asignatura.setIdEstado(new Estado('A'));
        boolean insertar = AsignaturaDAO.insertar(asignatura);

        if (insertar) {
            asignatura = new Asignatura();
        }
        return "";
    }


/* El metodo buscar, envia un objeto del tipo Asignatura a la clase AsignaturaDAO
 * para poder buscar una asignatura en la base de datos
 *
 * @see  AsignaturaDAO
*/

    public void buscar(ActionEvent event) {
        success = false;
        asignatura = AsignaturaDAO.buscarPorIdAsignatura(idAsignatura);
        if (asignatura.getIdAsignatura() != null) {
            success = true;
        }
    }

 /* El metodo modificar, envia un objeto del tipo Asignatura a la clase AsignaturaDAO
 * para poder modificar una asignatura en la base de datos
 *
 * @see  AsignaturaDAO
*/

    public void modificar(ActionEvent event) {
        success = false;
        success = EstudianteDAO.modificar(asignatura);


    }

 /* El metodo eliminar, envia un objeto del tipo Asignatura a la clase AsignaturaDAO
 * para poder eliminar una asignatura en la base de datos
 *
 * @see  AsignaturaDAO
*/

    public void eliminar(ActionEvent event) {
        eliminada = false;
        eliminada = AsignaturaDAO.eliminar(asignatura);

    }

    public List<SelectItem> getAsignaturaItems() {
        return asignaturaItems;
    }

    public String getIdAsignatura() {
        return idAsignatura;
    }

    public void setAsignaturaItems(List<SelectItem> asignaturaItems) {
        this.asignaturaItems = asignaturaItems;
    }

    public void setIdAsignatura(String idAsignatura) {
        this.idAsignatura = idAsignatura;
    }

    public boolean isSuccess() {
        return success;
    }

    public boolean isEliminada() {
        return eliminada;
    }

    public void resetearBean(ActionEvent event) {
        ELContext elContext = FacesContext.getCurrentInstance().getELContext();
        ValueExpression ve = FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(elContext, "#{asignaturaBean}", ManejoAsignaturaBean.class);

        ManejoAsignaturaBean bean = new ManejoAsignaturaBean();
        ve.setValue(elContext, bean);
    }
}